package FinalAndStatic.demo01;

import java.util.Scanner;

public class Stud {
    /**
     * 编写一个程序，输入N个学生数据，包括学号、姓名、成绩，要求输出这些学生数据并计算平均分。
     * 思路：
     * 1.设计一个学生类Stud，包括no(学号)、name(姓名)和deg(成绩)属性，
     * 同时包含两个静态变量sum和num，分别存放总分和人数；
     * 定义构造方法，用来初始化学号，姓名，成绩，同时记录总人数及总成绩；
     */
    private int no;
    private String name;
    private double deg;

    static double sum = 0;
    static int num = 0;

    Stud(int no,String name,double deg){
        this.no = no;
        this.name = name;
        this.deg = deg;

        sum += deg;
        num++;
    }
    /**
     * 2.定义一个静态成员函数avg()，它用于计算平均分。
     * 3.在main()函数中定义了一个对象数组用于存储输入的学生数据。
     */
    static double avg(){
        return sum/num;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生人数");
        int n = sc.nextInt();
        Stud[] students = new Stud[n];
        for (int i = 0; i < n; i++) {
            System.out.println("请输入第"+(i+1)+"个学生的学号:");
            int no = sc.nextInt();
            System.out.println("请输入第"+(i+1)+"个学生的姓名:");
            String name = sc.next();
            System.out.println("请输入第"+(i+1)+"个学生的成绩:");
            double dge = sc.nextDouble();
            students[i] = new Stud(no,name,dge);
        }
        for (Stud student : students) {
            System.out.println("学号："+student.no+" 姓名:"+student.name+" 成绩："+student.deg);
        }
        System.out.println("学生的平均成绩为："+Stud.avg());
    }
}
